{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# fitting"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "ValueError",
     "evalue": "A value in x_new is below the interpolation range.",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-17-e58582f3fdde>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m     18\u001b[0m \u001b[0mpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlegend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mloc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"best\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     19\u001b[0m \u001b[0mpl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 20\u001b[1;33m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfl\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m0.5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mc:\\program files\\python36\\lib\\site-packages\\scipy\\interpolate\\polyint.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m     77\u001b[0m         \"\"\"\n\u001b[0;32m     78\u001b[0m         \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx_shape\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_prepare_x\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 79\u001b[1;33m         \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_evaluate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     80\u001b[0m         \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_finish_y\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx_shape\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     81\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\program files\\python36\\lib\\site-packages\\scipy\\interpolate\\interpolate.py\u001b[0m in \u001b[0;36m_evaluate\u001b[1;34m(self, x_new)\u001b[0m\n\u001b[0;32m    662\u001b[0m         \u001b[0my_new\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_call\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx_new\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    663\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_extrapolate\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 664\u001b[1;33m             \u001b[0mbelow_bounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mabove_bounds\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_check_bounds\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx_new\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    665\u001b[0m             \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_new\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    666\u001b[0m                 \u001b[1;31m# Note fill_value must be broadcast up to the proper size\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mc:\\program files\\python36\\lib\\site-packages\\scipy\\interpolate\\interpolate.py\u001b[0m in \u001b[0;36m_check_bounds\u001b[1;34m(self, x_new)\u001b[0m\n\u001b[0;32m    691\u001b[0m         \u001b[1;31m# !! Could provide more information about which values are out of bounds\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    692\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbounds_error\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mbelow_bounds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0many\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 693\u001b[1;33m             raise ValueError(\"A value in x_new is below the interpolation \"\n\u001b[0m\u001b[0;32m    694\u001b[0m                              \"range.\")\n\u001b[0;32m    695\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mbounds_error\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mabove_bounds\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0many\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mValueError\u001b[0m: A value in x_new is below the interpolation range."
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from scipy.interpolate import interp1d\n",
    "%matplotlib inline\n",
    "#创建待插值的数据\n",
    "x = np.linspace(0, 4*np.pi, 10)\n",
    "y = np.cos(x)\n",
    "# 分别用linear和quadratic插值\n",
    "fl = interp1d(x, y, kind='linear') # xy为已知点\n",
    "fq = interp1d(x, y, kind='quadratic')\n",
    "\n",
    "#设置x的最大值和最小值以防止插值数据越界\n",
    "xint = np.linspace(x.min(), x.max(), 100)\n",
    "yintl = fl(xint) #根据拟合函数f1 球的 拟合点y\n",
    "yintq = fq(xint)\n",
    "import pylab as pl\n",
    "pl.plot(xint,fl(xint), color=\"green\", label = \"Linear\")\n",
    "pl.plot(xint,fq(xint), color=\"yellow\", label =\"Quadratic\")\n",
    "pl.legend(loc = \"best\")\n",
    "pl.show()\n",
    "print(fl(-0.5))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
